package com.zm.authority.identity.service;

import java.util.Set;

import com.zm.authority.identity.po.ZmUser;
import com.zm.base.core.exception.BaseException;
import com.zm.base.core.po.ZmResult;

/**
 * 用户登录
 * @author chenhuaming
 * @Time 2017年4月23日
 */
public interface IdentityService {
/**
 * 登录
 * @author chenhuaming
 * @Time 2017年4月23日
 * @param userName 用户名
 * @param password 密码
 * @param rememberMe 记住密码
 * @param verifyCode 验证码
 * @return
 * @throws BaseException
 * @throws Exception
 */
public ZmResult login(String userName, String password, String rememberMe,String verifyCode)throws BaseException,Exception;
/**
 * 根据用户名查询用户
 * @author chenhuaming
 * @Time 2017年4月23日
 * @param userName
 * @return
 * @throws BaseException
 * @throws Exception
 */
public ZmUser getUserByUserName(String userName) throws BaseException,Exception;
/**
 * 获取该用户所拥有的角色
 * @author chenhuaming
 * @Time 2017年4月23日
 * @param userId
 * @return
 * @throws BaseException
 * @throws Exception
 */
public Set<String> getRolesByUserId(String userId)throws BaseException,Exception;
/**
 * 获取该用户的所有权限
 * @author chenhuaming
 * @Time 2017年4月23日
 * @param roles
 * @return
 * @throws BaseException
 * @throws Exception
 */
public Set<String> getPermissionsByRoleIds(String[] roles)throws BaseException,Exception;

}
